import service from "../service.js";
import contentType from "@/common/config/content-type";

/** 公共前缀地址 */
const baseUrl = "/trainPickRecord/";

/**
 * 提货计算
 * @param {*} parameter 请求参数
 * @returns
 */
const calculatePrice = (parameter) => {
  const config = {
    type: contentType.Json,
    loadon: true,
  };
  return service.post(baseUrl + "compute", parameter, config);
};

/**
 * 确认提货
 * @param {*} parameter 请求参数
 * @returns
 */
const calculateConfirm = (parameter) => {
  const config = {
    type: contentType.Json,
    loadon: true,
  };
  return service.post(baseUrl + "pick", parameter, config);
};

/**
 * 通过采购订单编号获取预付款抵扣信息
 * @param {*} parameter 请求参数
 * @returns
 */
const getCreditInfo = (purchaseOrderNumber) => {
  const config = {
    type: contentType.Form,
    loadon: true,
  };
  return service.get(`/purchaseOrder/queryPaidFirstPriceInfoByPurchaseOrderNumber?purchaseOrderNumber=${purchaseOrderNumber}`, config);
};

/**
 * 分页查询
 * @param {*} parameter 请求参数
 * @param {*} pagination 分页参数
 * @returns
 */
const selectPage = (parameter, pagination) => {
  const config = {
    type: contentType.Json,
    loadon: true,
    params: { ...pagination },
  }
  return service.post(baseUrl + "selectPage", parameter, config);
};

/**
 * 自动识别物流信息
 * @param {*} parameter 请求参数
 * @returns
 */
const getLogisticsInfo = (parameter) => {
  const config = {
    type: contentType.Json,
    loadon: true,
  }
  return service.post("/logisticsRecord/autoIdentifyLogisticsInfo", parameter, config);
};

/**
 * 获取统计值
 * @param {*} parameter 请求参数
 * @returns
 */
const getSumPickPayPrice = (parameter) => {
  const config = {
    type: contentType.Json,
    loadon: true,
  }
  return service.post(baseUrl + "selectSumPickPayPrice", parameter, config);
};

/**
 * 是否启用操作
 * @param {*} parameter 请求参数
 * @returns
 */
const changeState = (parameter) => {
  const config = {
    type: contentType.Json,
    loadon: true,
  }
  return service.post(baseUrl + `operationEnable?id=${parameter.id}&isEnable=${parameter.isEnable}`, null, config);
};

export default {
  calculatePrice,
  getCreditInfo,
  selectPage,
  getLogisticsInfo,
  calculateConfirm,
  getSumPickPayPrice,
  changeState
};
